# -*- coding: utf-8 -*--
import exceptions
import carte


class Mur:
     
     def __init__( self, i_position_x, i_position_y, i_longueur, i_alignement ):
         entier = type( 1 )
         if type( i_position_x ) != entier or type( i_position_y ) != entier or type( i_longueur ) != entier or type( i_alignement ) != entier:
             raise carte.ErreurCarte( "Les paramètres de la classe Mur doivent être de type 'int'" )         
         if i_alignement != carte.VERTICAL and  i_alignement != carte.HORIZONTAL:
             raise carte.ErreurCarte( "L'alignement du mur doit être VERTICAL ou HORIZONTAL" )
         if i_longueur < 1: 
             raise carte.ErreurCarte( "Un mur doit avoir une longueur de 1 case minimum" )
         
         self.__i_position_x = i_position_x
         self.__i_position_y = i_position_y
         self.__i_longueur   = i_longueur
         self.__i_alignement = i_alignement
         self.__fabriqueCasesPrises( )
         
     def __fabriqueCasesPrises( self ):
         self.__cases_prises = list( )
         i = 0
         x = self.__i_position_x
         y = self.__i_position_y
         for i in range( self.__i_longueur ):
              if self.__i_alignement == carte.VERTICAL:
                  self.__cases_prises.append( ( x, y + i ) )
              else:
                  self.__cases_prises.append( ( x + i, y ) )

     def getCasesPrises( self ):
         return self.__cases_prises

     def getPosition( self ):
         return ( self.__i_position_x, self.__i_position_y )                 
         
     def getLongueur( self ):
         return self.__i_longueur
     
     def getAlignement( self ):
         return self.__i_alignement